#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
Nos permite configurar que la máquina linux se autentique contra
el servidor ldap del dominio gestion.red

"""

from gestSist import *
from auxiliares import *

def conf_auth_ldap():
    "Linux -  Autenticación contra ldap gestion.red"
    #Ejecutamos las órdenes con sudo
    mode_sudo()
    #package_ensure("libnss-ldap",True)
    #package_ensure("libpam-ldap")
    #package_ensure("libpam-cracklib")

    #Paramos el demonio nscd
    run("/etc/init.d/nscd stop")


    #Porcedemos a cambiar la configuración libnss-ldap.conf
    if file_exists("/etc/libnss-ldap.conf"):
        save_original("/etc/libnss-ldap.conf")
        #Hecha la copia de borra el original
        run("rm /etc/libnss-ldap.conf")
    file_append("/etc/libnss-ldap.conf",local_read("./plantillas/gestion/libnss-ldap.conf"),"600","root","root")

    #Porcedemos a cambiar la configuración pam_ldap.conf
    if file_exists("/etc/pam_ldap.conf"):
        save_original("/etc/pam_ldap.conf")
        #Hecha la copia de borra el original
        run("rm /etc/pam_ldap.conf")
    file_append("/etc/pam_ldap.conf",local_read("./plantillas/gestion/pam_ldap.conf"),"600","root","root")

    #Porcedemos a cambiar la configuración nsswitch.conf
    if file_exists("/etc/nsswitch.conf"):
        save_original("/etc/nsswitch.conf")
        #Hecha la copia de borra el original
        run("rm /etc/nsswitch.conf")
    file_append("/etc/nsswitch.conf",local_read("./plantillas/gestion/nsswitch.conf"),"600","root","root")

    #Hacemos una copia de la configuración PAM
    save_original("/etc/pam.d")

    #Porcedemos a cambiar la configuración pam.d/common-account
    if file_exists("/etc/pam.d/common-account"):
        save_original("/etc/pam.d/common-account")
    file_append("/etc/pam.d/common-account_tmp",local_read("./plantillas/gestion/pam.d/common-account"),"600","root","root")
    #Sustituimos un archivo por otro, no se puede borrar pq luego no te puedes conectar
    run("mv  /etc/pam.d/common-account_tmp /etc/pam.d/common-account")

    #Porcedemos a cambiar la configuración pam.d/common-password
    if file_exists("/etc/pam.d/common-password"):
        save_original("/etc/pam.d/common-password")
    file_append("/etc/pam.d/common-password_tmp",local_read("./plantillas/gestion/pam.d/common-password"),"600","root","root")
    #Sustituimos un archivo por otro, no se puede borrar pq luego no te puedes conectar
    run("mv  /etc/pam.d/common-password_tmp /etc/pam.d/common-password")

    #Porcedemos a cambiar la configuración pam.d/common-session
    if file_exists("/etc/pam.d/common-session"):
        save_original("/etc/pam.d/common-session")
    file_append("/etc/pam.d/common-session_tmp",local_read("./plantillas/gestion/pam.d/common-session"),"600","root","root")
    #Sustituimos un archivo por otro, no se puede borrar pq luego no te puedes conectar
    run("mv  /etc/pam.d/common-session_tmp /etc/pam.d/common-session")
    

    #Porcedemos a cambiar la configuración pam.d/common-auth
    if file_exists("/etc/pam.d/common-auth"):
        save_original("/etc/pam.d/common-auth")
    file_append("/etc/pam.d/common-auth_tmp",local_read("./plantillas/gestion/pam.d/common-auth"),"600","root","root")
    #Sustituimos un archivo por otro, no se puede borrar pq luego no te puedes conectar
    run("mv  /etc/pam.d/common-auth_tmp /etc/pam.d/common-auth")

    #Sacamos todos los ususarios para ver si se ha configurado bien
    run("getent passwd")

    #Paramos el demonio nscd
    run("/etc/init.d/nscd start")

__version__ = "$Revision$"
# $Source$

